﻿using System;
using System.Collections.Generic;
using SharpSqlAnalyzer.nodes.hive;
using SharpSqlAnalyzer.nodes.oracle;

namespace SharpSqlAnalyzer.nodes
{
	// Token: 0x020002FA RID: 762
	public class TInsertSqlNode : TParseTreeNode
	{
		// Token: 0x17000606 RID: 1542
		// (get) Token: 0x06001ACE RID: 6862 RVA: 0x0032E8E4 File Offset: 0x0032CAE4
		// (set) Token: 0x06001ACF RID: 6863 RVA: 0x0032E8EC File Offset: 0x0032CAEC
		public List<TInsertIntoValue> ElseIntoValues
		{
			get
			{
				return this._elseIntoValues;
			}
			set
			{
				this._elseIntoValues = value;
			}
		}

		// Token: 0x06001AD0 RID: 6864 RVA: 0x0032E8F5 File Offset: 0x0032CAF5
		public void setReturningClause(TReturningClause c)
		{
			this.returningClause = c;
		}

		// Token: 0x06001AD1 RID: 6865 RVA: 0x0032E8FE File Offset: 0x0032CAFE
		public void setColumnList(TObjectNameList onl)
		{
			this.columnList = onl;
		}

		// Token: 0x06001AD2 RID: 6866 RVA: 0x0032E907 File Offset: 0x0032CB07
		public void setIsolationClause(TIsolationClause ic)
		{
			this.isolationClause = ic;
		}

		// Token: 0x06001AD3 RID: 6867 RVA: 0x0032E910 File Offset: 0x0032CB10
		public TFromTable getTargetTable()
		{
			return this.targetTable;
		}

		// Token: 0x06001AD4 RID: 6868 RVA: 0x0032E918 File Offset: 0x0032CB18
		public void setTargetTable(TFromTable ft)
		{
			this.targetTable = ft;
		}

		// Token: 0x06001AD5 RID: 6869 RVA: 0x0032E921 File Offset: 0x0032CB21
		public void setInsertToken(TSourceToken st)
		{
			this.insertToken = st;
		}

		// Token: 0x17000607 RID: 1543
		// (get) Token: 0x06001AD7 RID: 6871 RVA: 0x0032E933 File Offset: 0x0032CB33
		// (set) Token: 0x06001AD6 RID: 6870 RVA: 0x0032E92A File Offset: 0x0032CB2A
		public virtual TErrorLoggingClause ErrorLoggingClause
		{
			get
			{
				return this.errorLoggingClause;
			}
			set
			{
				this.errorLoggingClause = value;
			}
		}

		// Token: 0x17000608 RID: 1544
		// (get) Token: 0x06001AD9 RID: 6873 RVA: 0x0032E944 File Offset: 0x0032CB44
		// (set) Token: 0x06001AD8 RID: 6872 RVA: 0x0032E93B File Offset: 0x0032CB3B
		public virtual TObjectName DirectoryName
		{
			get
			{
				return this.directoryName;
			}
			set
			{
				this.directoryName = value;
			}
		}

		// Token: 0x17000609 RID: 1545
		// (get) Token: 0x06001ADB RID: 6875 RVA: 0x0032E95D File Offset: 0x0032CB5D
		// (set) Token: 0x06001ADA RID: 6874 RVA: 0x0032E94C File Offset: 0x0032CB4C
		public virtual EHiveInsertType HiveInsertType
		{
			get
			{
				return this.hiveInsertType;
			}
			set
			{
				this.hiveInsertType = value;
				this.valueType = 10;
			}
		}

		// Token: 0x06001ADC RID: 6876 RVA: 0x0032E965 File Offset: 0x0032CB65
		public override void init(object arg1)
		{
			this.directoryName = (TObjectName)arg1;
		}

		// Token: 0x1700060A RID: 1546
		// (get) Token: 0x06001ADD RID: 6877 RVA: 0x0032E973 File Offset: 0x0032CB73
		// (set) Token: 0x06001ADE RID: 6878 RVA: 0x0032E97B File Offset: 0x0032CB7B
		public virtual List<TInsertCondition> InsertConditions
		{
			get
			{
				return this.insertConditions;
			}
			set
			{
				this.insertConditions = value;
			}
		}

		// Token: 0x1700060B RID: 1547
		// (get) Token: 0x06001ADF RID: 6879 RVA: 0x0032E984 File Offset: 0x0032CB84
		// (set) Token: 0x06001AE0 RID: 6880 RVA: 0x0032E98C File Offset: 0x0032CB8C
		public virtual List<TInsertIntoValue> InsertIntoValues
		{
			get
			{
				return this.insertIntoValues;
			}
			set
			{
				this.insertIntoValues = value;
			}
		}

		// Token: 0x1700060C RID: 1548
		// (get) Token: 0x06001AE2 RID: 6882 RVA: 0x0032E99E File Offset: 0x0032CB9E
		// (set) Token: 0x06001AE1 RID: 6881 RVA: 0x0032E995 File Offset: 0x0032CB95
		public virtual TSourceToken InsertToken
		{
			get
			{
				return this.insertToken;
			}
			set
			{
				this.insertToken = value;
			}
		}

		// Token: 0x1700060D RID: 1549
		// (get) Token: 0x06001AE3 RID: 6883 RVA: 0x0032E9A6 File Offset: 0x0032CBA6
		// (set) Token: 0x06001AE4 RID: 6884 RVA: 0x0032E9AE File Offset: 0x0032CBAE
		public virtual TSelectSqlNode SubQueryNode
		{
			get
			{
				return this.subQueryNode;
			}
			set
			{
				this.subQueryNode = value;
				if (this.valueType == 10)
				{
					this.valueType = 11;
				}
			}
		}

		// Token: 0x06001AE5 RID: 6885 RVA: 0x0032E9C9 File Offset: 0x0032CBC9
		public virtual TMultiTargetList getValues()
		{
			return this.values;
		}

		// Token: 0x1700060E RID: 1550
		// (get) Token: 0x06001AE6 RID: 6886 RVA: 0x0032E9D1 File Offset: 0x0032CBD1
		// (set) Token: 0x06001AE7 RID: 6887 RVA: 0x0032E9D9 File Offset: 0x0032CBD9
		public virtual int ValueType
		{
			get
			{
				return this.valueType;
			}
			set
			{
				this.valueType = value;
			}
		}

		// Token: 0x1700060F RID: 1551
		// (get) Token: 0x06001AE8 RID: 6888 RVA: 0x0032E9E2 File Offset: 0x0032CBE2
		// (set) Token: 0x06001AE9 RID: 6889 RVA: 0x0032E9EA File Offset: 0x0032CBEA
		public TCTEList cteList
		{
			get
			{
				return this._cteList;
			}
			set
			{
				this._cteList = value;
			}
		}

		// Token: 0x17000610 RID: 1552
		// (get) Token: 0x06001AEA RID: 6890 RVA: 0x0032E9F3 File Offset: 0x0032CBF3
		// (set) Token: 0x06001AEB RID: 6891 RVA: 0x0032E9FB File Offset: 0x0032CBFB
		public virtual TReturningClause ReturningClause
		{
			get
			{
				return this.returningClause;
			}
			set
			{
				this.returningClause = value;
			}
		}

		// Token: 0x17000611 RID: 1553
		// (get) Token: 0x06001AEC RID: 6892 RVA: 0x0032EA04 File Offset: 0x0032CC04
		// (set) Token: 0x06001AED RID: 6893 RVA: 0x0032EA0C File Offset: 0x0032CC0C
		public virtual TObjectNameList ColumnList
		{
			get
			{
				return this.columnList;
			}
			set
			{
				this.columnList = value;
			}
		}

		// Token: 0x17000612 RID: 1554
		// (get) Token: 0x06001AEE RID: 6894 RVA: 0x0032EA15 File Offset: 0x0032CC15
		// (set) Token: 0x06001AEF RID: 6895 RVA: 0x0032EA1D File Offset: 0x0032CC1D
		public virtual TOutputClause OutputClause
		{
			get
			{
				return this.outputClause;
			}
			set
			{
				this.outputClause = value;
			}
		}

		// Token: 0x17000613 RID: 1555
		// (get) Token: 0x06001AF0 RID: 6896 RVA: 0x0032EA26 File Offset: 0x0032CC26
		// (set) Token: 0x06001AF1 RID: 6897 RVA: 0x0032EA2E File Offset: 0x0032CC2E
		public virtual TFromTable TargetTable
		{
			get
			{
				return this.targetTable;
			}
			set
			{
				this.targetTable = value;
			}
		}

		// Token: 0x17000614 RID: 1556
		// (get) Token: 0x06001AF2 RID: 6898 RVA: 0x0032EA37 File Offset: 0x0032CC37
		// (set) Token: 0x06001AF3 RID: 6899 RVA: 0x0032EA3F File Offset: 0x0032CC3F
		public virtual TTopClause TopClause
		{
			get
			{
				return this.topClause;
			}
			set
			{
				this.topClause = value;
			}
		}

		// Token: 0x17000615 RID: 1557
		// (get) Token: 0x06001AF5 RID: 6901 RVA: 0x0032EA51 File Offset: 0x0032CC51
		// (set) Token: 0x06001AF4 RID: 6900 RVA: 0x0032EA48 File Offset: 0x0032CC48
		public virtual TResultColumnList OnDuplicateKeyUpdate
		{
			get
			{
				return this.onDuplicateKeyUpdate;
			}
			set
			{
				this.onDuplicateKeyUpdate = value;
			}
		}

		// Token: 0x17000616 RID: 1558
		// (get) Token: 0x06001AF7 RID: 6903 RVA: 0x0032EA62 File Offset: 0x0032CC62
		// (set) Token: 0x06001AF6 RID: 6902 RVA: 0x0032EA59 File Offset: 0x0032CC59
		public virtual TSourceToken Ignore
		{
			get
			{
				return this.ignore;
			}
			set
			{
				this.ignore = value;
			}
		}

		// Token: 0x17000617 RID: 1559
		// (get) Token: 0x06001AF9 RID: 6905 RVA: 0x0032EA73 File Offset: 0x0032CC73
		// (set) Token: 0x06001AF8 RID: 6904 RVA: 0x0032EA6A File Offset: 0x0032CC6A
		public virtual TSourceToken Priority_delayed
		{
			get
			{
				return this.priority_delayed;
			}
			set
			{
				this.priority_delayed = value;
			}
		}

		// Token: 0x17000618 RID: 1560
		// (set) Token: 0x06001AFA RID: 6906 RVA: 0x0032EA7C File Offset: 0x0032CC7C
		public virtual TResultColumnList ColumnListByResultColumnList
		{
			set
			{
				this.columnList = new TObjectNameList();
				for (int i = 0; i < value.size(); i++)
				{
					TExpression expr = value.getResultColumn(i).Expr;
					if (expr.ExpressionType == EExpressionType.simple_object_name_t)
					{
						this.columnList.addObjectName(expr.ObjectOperand);
					}
				}
			}
		}

		// Token: 0x17000619 RID: 1561
		// (get) Token: 0x06001AFB RID: 6907 RVA: 0x0032EACE File Offset: 0x0032CCCE
		public virtual TFunctionCall FunctionCall
		{
			get
			{
				return this.functionCall;
			}
		}

		// Token: 0x1700061A RID: 1562
		// (get) Token: 0x06001AFC RID: 6908 RVA: 0x0032EAD6 File Offset: 0x0032CCD6
		public virtual TObjectName RecordName
		{
			get
			{
				return this.recordName;
			}
		}

		// Token: 0x1700061B RID: 1563
		// (set) Token: 0x06001AFD RID: 6909 RVA: 0x0032EADE File Offset: 0x0032CCDE
		public virtual TMultiTarget ValuesByMultiTarget
		{
			set
			{
				this.valueType = 1;
				this.values = new TMultiTargetList();
				this.values.addMultiTarget(value);
			}
		}

		// Token: 0x1700061C RID: 1564
		// (set) Token: 0x06001AFE RID: 6910 RVA: 0x0032EAFE File Offset: 0x0032CCFE
		public virtual TMultiTargetList ValuesByMultiTargetList
		{
			set
			{
				this.valueType = 1;
				this.values = value;
			}
		}

		// Token: 0x1700061D RID: 1565
		// (get) Token: 0x06001AFF RID: 6911 RVA: 0x0032EB0E File Offset: 0x0032CD0E
		public virtual TResultColumnList SetColumnValues
		{
			get
			{
				return this.setColumnValues;
			}
		}

		// Token: 0x1700061E RID: 1566
		// (get) Token: 0x06001B01 RID: 6913 RVA: 0x0032EB1F File Offset: 0x0032CD1F
		// (set) Token: 0x06001B00 RID: 6912 RVA: 0x0032EB16 File Offset: 0x0032CD16
		public virtual TIsolationClause IsolationClause
		{
			get
			{
				return this.isolationClause;
			}
			set
			{
				this.isolationClause = value;
			}
		}

		// Token: 0x1700061F RID: 1567
		// (get) Token: 0x06001B02 RID: 6914 RVA: 0x0032EB27 File Offset: 0x0032CD27
		public virtual TExecuteSqlNode ExecuteSqlNode
		{
			get
			{
				return this.executeSqlNode;
			}
		}

		// Token: 0x06001B03 RID: 6915 RVA: 0x0032EB30 File Offset: 0x0032CD30
		public virtual void setValues(TDummy dummyNode)
		{
			this.valueType = dummyNode.int1;
			switch (this.valueType)
			{
			case 1:
				this.values = (TMultiTargetList)dummyNode.list1;
				return;
			case 2:
				this.subQueryNode = (TSelectSqlNode)dummyNode.node1;
				return;
			case 3:
			case 6:
				break;
			case 4:
				this.executeSqlNode = (TExecuteSqlNode)dummyNode.node1;
				return;
			case 5:
				this.functionCall = (TFunctionCall)dummyNode.node1;
				return;
			case 7:
				this.setColumnValues = (TResultColumnList)dummyNode.list1;
				break;
			case 8:
				this.recordName = (TObjectName)dummyNode.node1;
				return;
			default:
				return;
			}
		}

		// Token: 0x040019C0 RID: 6592
		private List<TInsertIntoValue> _elseIntoValues;

		// Token: 0x040019C1 RID: 6593
		private TErrorLoggingClause errorLoggingClause;

		// Token: 0x040019C2 RID: 6594
		private EHiveInsertType hiveInsertType;

		// Token: 0x040019C3 RID: 6595
		private TObjectName directoryName;

		// Token: 0x040019C4 RID: 6596
		private List<TInsertCondition> insertConditions;

		// Token: 0x040019C5 RID: 6597
		private List<TInsertIntoValue> insertIntoValues;

		// Token: 0x040019C6 RID: 6598
		private TSourceToken insertToken;

		// Token: 0x040019C7 RID: 6599
		private int valueType = 1;

		// Token: 0x040019C8 RID: 6600
		private TCTEList _cteList;

		// Token: 0x040019C9 RID: 6601
		private TTopClause topClause;

		// Token: 0x040019CA RID: 6602
		private TOutputClause outputClause;

		// Token: 0x040019CB RID: 6603
		private TFromTable targetTable;

		// Token: 0x040019CC RID: 6604
		private TObjectNameList columnList;

		// Token: 0x040019CD RID: 6605
		private TReturningClause returningClause;

		// Token: 0x040019CE RID: 6606
		private TResultColumnList onDuplicateKeyUpdate;

		// Token: 0x040019CF RID: 6607
		private TSourceToken ignore;

		// Token: 0x040019D0 RID: 6608
		private TSourceToken priority_delayed;

		// Token: 0x040019D1 RID: 6609
		private TMultiTargetList values;

		// Token: 0x040019D2 RID: 6610
		private TSelectSqlNode subQueryNode;

		// Token: 0x040019D3 RID: 6611
		private TExecuteSqlNode executeSqlNode;

		// Token: 0x040019D4 RID: 6612
		private TFunctionCall functionCall;

		// Token: 0x040019D5 RID: 6613
		private TObjectName recordName;

		// Token: 0x040019D6 RID: 6614
		private TResultColumnList setColumnValues;

		// Token: 0x040019D7 RID: 6615
		private TIsolationClause isolationClause;
	}
}
